What is tunnel-agent?
The tunnel-agent npm package is used to implement HTTP/HTTPS tunneling. It allows you to proxy requests through a tunneling agent, which can be useful when you need to work with proxies or bypass network restrictions.
What are tunnel-agent's main functionalities?
HTTP Tunneling
This code sample demonstrates how to create an HTTP tunneling agent to proxy requests through a local proxy server running on port 8080.
const tunnel = require('tunnel-agent');
const https = require('https');
let tunnelingAgent = tunnel.httpOverHttp({
proxy: {
host: 'localhost',
port: 8080
}
});
const options = {
host: 'example.com',
port: 80,
agent: tunnelingAgent
};
https.get(options, (res) => {
console.log('Response:', res.statusCode);
});
HTTPS Tunneling
This code sample demonstrates how to create an HTTPS tunneling agent to proxy HTTPS requests through a local HTTPS proxy server running on port 8080.
const tunnel = require('tunnel-agent');
const https = require('https');
let tunnelingAgent = tunnel.httpsOverHttps({
proxy: {
host: 'localhost',
port: 8080
}
});
const options = {
host: 'example.com',
port: 443,
agent: tunnelingAgent
};
https.get(options, (res) => {
console.log('Response:', res.statusCode);
});
Other packages similar to tunnel-agent
http-proxy-agent
This package provides an HTTP agent to proxy requests. It is similar to tunnel-agent but focuses on HTTP proxying and does not support HTTPS tunneling.
https-proxy-agent
This package is an HTTP(s) proxy agent for node.js to proxy HTTPS requests. It is similar to tunnel-agent's functionality for HTTPS tunneling.
socks-proxy-agent
This package provides an agent capable of connecting through SOCKS proxies. It is similar to tunnel-agent but specifically designed for SOCKS proxy connections.